package com.jnetwork.negocio;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import com.jnetwork.dao.DiscucionDAO;
import com.jnetwork.exception.DAOExcepcion;
import com.jnetwork.modelo.Discucion;
import com.jnetwork.modelo.Idea;

public class GestionDiscucion {

	public Integer insertar(Discucion discucion) throws DAOExcepcion {
		
		String texto = null;
		if (discucion.getTexto()!=null && !discucion.getTexto().trim().equals("")) {
			texto = discucion.getTexto();
		}else{
			throw new DAOExcepcion("Debe ingresar texto");
		}
		Integer ideaId = null;
		if (discucion.getIdea()!=null && discucion.getIdea().getId()!=null && discucion.getIdea().getId()>0) {
			ideaId=discucion.getIdea().getId();
		}
		Integer discucionId = null;
		if (discucion.getDiscucion()!=null && discucion.getDiscucion().getId()!=null && discucion.getDiscucion().getId()>0) {
			discucionId=discucion.getDiscucion().getId();
		}
		Integer usuarioId = null;
		if (discucion.getUsuario()!=null && discucion.getUsuario().getId()!=null && discucion.getUsuario().getId()>0) {
			usuarioId=discucion.getUsuario().getId();
		}

		DiscucionDAO dao = new DiscucionDAO();

		return dao.insertar(texto,ideaId,discucionId,usuarioId);

	}
	
	public Collection<Discucion> buscarDiscuciones(Integer ideaId) throws DAOExcepcion {
		
		try {
			
			DiscucionDAO dao = new DiscucionDAO();
			Collection<Discucion> discucionesPadreTemporal = dao.buscarDiscucionesPadrePorId(ideaId);
			Collection<Discucion> discucionesPadre = new ArrayList<Discucion>();
			for (Discucion discucion : discucionesPadreTemporal) {
				Collection<Discucion> discucionesHijo = dao.buscarDiscucionesHijoPorId(discucion.getId());
				if (discucionesHijo !=null && discucionesHijo.size()>0) {
					discucion.setDiscucionesHijo(discucionesHijo);
				}
				discucionesPadre.add(discucion);
			}
			
			return discucionesPadre;
			
		} catch (DAOExcepcion e) {
			e.printStackTrace();
			throw new DAOExcepcion(e.getMessage());
		}
		
		
	}

}
